In digital data or communications networks, information sent over a transmission medium is encoded into bits. In a simple embodiment each bit could be represented by a wavelet chosen from a set of two unique signal waveforms that represent a digital “1” and a digital “0.” For example, a wavelet could be a bi-phase Gaussian pulse that could be sent in an inverted or non-inverted orientation to represent the digital “1” and “0.” The wavelet could also be a set number of repeated sinusoids that can likewise be sent in an inverted or non-inverted orientation to represent the “1” and “0.” Other wavelet shapes are, of course, possible.
In other embodiments, bits can be represented by codes (also called codewords or chips) that are made up of multiple wavelets in a known pattern, with one pattern representing the digital “1” and another pattern representing the digital “0.” Other embodiments can include multiple layers or coding with each code being made up of a plurality of elements of the next lower code.
In order to properly receive the information sent over the transmission medium, a receiving device will typically correlate the incoming chips with locally-generated chips and use the resulting correlation value to determine whether a digital “1” or a digital “0” was sent. However, for this to be done accurately, the chips generated at the receiver device should have the same phase and frequency as the chips in the signal received from the transmitting device.
But in many systems, the transmitting device and the receiving device operate independently from each other, meaning that their local clocks are not necessarily synchronized in phase. Thus, any wavelets or chips they generate are likewise not necessarily synchronized in phase. As a result, the receiving device will typically perform a synchronization process (also called a clock recovery process or an acquisition process) to match the phase and frequency of its local clock with the transmitter clock used to generate the received signal.
One way to accomplish this acquisition process is to have the transmitting device send a known string of chips (i.e., an acquisition code) at the beginning of each set of data that it transmits (e.g., at the beginning of a data packet). The acquisition code can be repeated multiple times (e.g., in a preamble) to allow the receiver device sufficient time to properly match its local clock phase with the clock phase of the transmitting device that sent the incoming signal (i.e., to successfully acquire the incoming signal).
During an acquisition process, the receiving device correlates a locally-generated copy of the acquisition code with a received copy of the acquisition code in a sliding correlator. The sliding correlator operates by mixing (i.e., multiplying) the locally-generated code sequence with the received signal, integrating the result over the duration of the known code, and collecting a string of integration values.
If the phase of the clock used at the transmitter to encode the data matches the receiver clock phase, then a maximum correlation value will be produced when the two sequences (i.e. the locally-generated sequence and the received sequence) are mixed at the receiver. If the phases differ, however, the result will be below that maximum value. The sliding correlator can vary the phase of the local clock it uses to generate a local copy of the acquisition code, thereby causing the local acquisition code to “slide” in phase (i.e., time) relative to the received acquisition code. At some point during this phase sliding process, the string of correlation values will peak to the largest absolute value, indicating that the two sequences are phase (i.e., time) aligned. Were they allowed to continue to slide in phase, a repeating pattern would result that can be called the cyclic autocorrelation function of the acquisition code.
Because the output of the sliding correlator is cyclic, the process of moving the phase of the receiver relative to the transmitter through one cycle of the acquisition code is often referred to as a “code wheel spin.” To guarantee that the largest absolute value of the correlation function is obtained, the code wheel must be allowed to spin at least one full cycle during the acquisition process. However, given minimum phase step sizes and signal-to-noise (SNR) requirements, this can cause acquisition to be a time consuming process.
It is therefore desirable to provide a system and method that can allow for a quicker acquisition process.